package com.star.news.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.star.news.dto.NewsUpdateDTO;
import com.star.news.entity.News;
import com.star.news.vo.NewsDetailVO;
import com.star.news.vo.NewsDetailWebVO;
import com.star.news.vo.NewsDetailWxappVO;
import com.star.news.vo.NewsVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 新闻 Mapper 接口
 *
 * @author lintianyi
 */
public interface NewsMapper extends BaseMapper<News> {


    /**
     * 分页获取列表
     *
     * @param page
     * @return
     */
    IPage<NewsVO> page(@Param("page") NewsUpdateDTO page);

    /**
     * 获取新闻详情
     *
     * @param id
     * @return
     */
    NewsDetailVO getDetail(@Param("id") Long id);

    /**
     * 小程序获取新闻详情
     *
     * @param id
     * @return
     */
    NewsDetailWxappVO getDetailWxapp(@Param("id") Long id);

    /**
     * web端获取新闻详情
     *
     * @param id
     * @return
     */
    NewsDetailWebVO getDetailWeb(@Param("id") Long id);

    /**
     * 列表艺人最新的新闻top
     *
     * @param starId 艺人ID
     * @param limit  限度
     * @return {@link List}<{@link NewsVO}>
     */
    List<NewsVO> listLatestByStarId(@Param("starId") Long starId, @Param("limit") int limit);

}
